package _2_2基础算法;

public class _2489十六进制转十进制 {
	public static void main(String[] args) {
		String str = "2021ABCD";
		
		// 方法一
		int s = Integer.parseInt(str,16);
		System.out.println(s);
		
		// 方法二
		int k = 0;
		char a = 'A';
		long sum = 0;
		
		for(int i = str.length()-1;i >= 0;i--,k++) {
			int num = 0;
			char c = str.charAt(i);
			if(c >= 'A' && c <= 'F') {
				// 如果是A，减去A会变成0，加上10就是A原本代表的10
				// 如果是B，减去B会变成1，加上10就是B原本代表的11
				num = c - 'A'+ 10;
				sum += (long)num * Math.pow(16, k);
			}else {
				num = c - '0';
				sum += (long)num * Math.pow(16, k);
			}
		}
		
		System.out.print(sum);
		
		

		
	}
}
